// 测试一下对象遍历 都能拿到那些值
// var obj = {
//   name: 'lu-lu',
//   age: 23,
//   [Symbol('123')]:'2345'
// }

// obj.__proto__.name_1 = 'lucy'

// Object.keys(obj).forEach(key=>{
//   console.log(`Object.keys中的key--- ${key}`)
// })

// for (const key in obj) {
//   console.log(`fot in中的key--- ${key}`)
// }

// Object.getOwnPropertyNames(obj).forEach(key=>{
//   console.log(`getOwnPropertyNames的key--- ${key}`)
// })

// Reflect.ownKeys(obj).forEach(function (key){
//   console.log(`Reflect.ownKeys中的key---`)
//   console.log(key)
// })


/**
 *  怎么让for of可以循环对象
 */

const obj = {
  count: 0,
  // [Symbol.iterator](){
  //   return {
  //     next: ()=>{
  //       if (this.count<10) {
  //         this.count++
  //         return {
  //           value: this.count,
  //           done: false
  //         }
  //       } else {
  //         return {
  //           value:undefined,
  //           done:true
  //         }
  //       }
  //     }
  //   }
  // }
  [Symbol.iterator]: ()=>{
    return {
      next: ()=>{
        obj.count++
        if (obj.count<=10) {
          return {
            value: obj.count,
            done:false
          }
        } else {
          return {
            value: undefined,
            done: true
          }
        }
      }
    }
  }

}

for (const key of obj) {
  console.log(key)
}
console.log(JSON.stringify(obj))

var obj_2 = {
  name: '22',
  age: 22,
  other: obj_1
}

var obj_1 = {
  name: '11',
  age: 11,
  other: obj_2
}

// console.log(JSON.parse(JSON.stringify(obj_1)))
// console.log(JSON.parse(JSON.stringify(obj_2)))
// console.log(obj_2)
function Player(){}
console.dir(Player.__proto__)
